﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace KuPeiXun.Dao.Action
{
    #region 企业账户表数据技术访问
    /// <summary>
    /// 企业账户表数据技术访问
    /// </summary>
    /// ===============================================================
    /// 作者：邹学良 
    /// 时间：2013-03-23
    /// 描述：创建
    /// 历史：无
    /// ===============================================================
    public class TOAccount
    {
        #region 数据访问对象
        /// <summary>
        /// 数据访问对象
        /// </summary>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        private KuPeiXun.Dao.ITOAccount dao = null;
        #endregion

        #region 构造函数 通过数据库访问技术类型获取数据库访问对象
        /// <summary>
        /// 构造函数 通过数据库访问技术类型获取数据库访问对象
        /// </summary>
        /// <param name="dataaccess"></param>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-22
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public TOAccount(KuPeiXun.Common.Enum.DataAccessType dataaccess)
        {
            try
            {
                switch (dataaccess)
                {
                    case Common.Enum.DataAccessType.AdoNet:
                        this.dao = new KuPeiXun.Dao.Action.Ado.TOAccount(Common.Enum.DataBaseType.SQLServer);
                        break;
                    case Common.Enum.DataAccessType.EntityFramework:
                        this.dao = new KuPeiXun.Dao.Action.EF.TOAccount();
                        break;
                }
            }
            catch (Exception ex)
            {
                throw new KuPeiXun.Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 基本操作

        #region 添加一个企业账号数据
        /// <summary>
        /// 添加一个企业账号数据
        /// </summary>
        /// <param name="entity">企业账号实体</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public Guid Insert(KuPeiXun.Entity.TOAccount entity)
        {
            try
            {
                Guid newid = this.dao.Insert(entity);
                return newid;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 更新一个企业账号数据
        /// <summary>
        /// 更新一个企业账号数据
        /// </summary>
        /// <param name="entity">企业账号实体</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public bool Update(KuPeiXun.Entity.TOAccount entity)
        {
            try
            {
                bool result = this.dao.Update(entity);
                return result;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 删除一个企业账号数据
        /// <summary>
        /// 删除一个企业账号数据
        /// </summary>
        /// <param name="id">企业账号id</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public bool Delete(Guid id)
        {
            try
            {
                bool result = this.dao.Delete(id);
                return result;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 删除多个企业账号数据
        /// <summary>
        /// 删除多个企业账号数据
        /// </summary>
        /// <param name="idlist">企业账号id列表</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public bool DeleteRang(List<Guid> idlist)
        {
            try
            {
                bool result = this.dao.DeleteRang(idlist);
                return result;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #endregion

        #region 获取数据

        #region 通过ID获取企业账号对象
        /// <summary>
        /// 通过ID获取企业账号对象
        /// </summary>
        /// <param name="id">企业账号ID</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public KuPeiXun.Entity.TOAccount SelectSingleById(Guid id)
        {
            try
            {
                KuPeiXun.Entity.TOAccount entity = this.dao.SelectSingleById(id);
                return entity;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过邮箱获取企业账户对象
        /// <summary>
        /// 通过邮箱获取企业账户对象
        /// </summary>
        /// <param name="email">邮箱</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public KuPeiXun.Entity.TOAccount SelectSingleByEmail(string email)
        {
            try
            {
                KuPeiXun.Entity.TOAccount entity = this.dao.SelectSingleByEmail(email);
                return entity;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过邮箱、密码获取企业账户对象
        /// <summary>
        /// 通过邮箱、密码获取企业账户对象
        /// </summary>
        /// <param name="email">名称</param>
        /// <param name="password">密码</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public KuPeiXun.Entity.TOAccount SelectSingleByEmail(string email, string password)
        {
            try
            {
                KuPeiXun.Entity.TOAccount entity = this.dao.SelectSingleByEmail(email, password);
                return entity;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过关键字，数据列表条件获取企业账号数据列表
        /// <summary>
        /// 通过关键字，数据列表条件获取企业账号数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public List<KuPeiXun.Entity.TOAccount> SelectList(string keystr, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount)
        {
            try
            {
                List<KuPeiXun.Entity.TOAccount> list = this.dao.SelectList(keystr, listparameter, out datacount);
                return list;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过关键字，是否激活，数据列表条件获取企业账户数据列表
        /// <summary>
        /// 通过关键字，是否激活，数据列表条件获取企业账户数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="active">是否激活</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public List<KuPeiXun.Entity.TOAccount> SelectList(string keystr, KuPeiXun.Entity.IsActive active, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount)
        {
            try
            {
                List<KuPeiXun.Entity.TOAccount> list = this.dao.SelectList(keystr, active, listparameter, out datacount);
                return list;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #region 通过关键字，是否激活，企业状态，数据列表条件获取企业账户数据列表
        /// <summary>
        /// 通过关键字，是否激活，企业状态，数据列表条件获取企业账户数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="state">企业状态</param>
        /// <param name="active">是否激活</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        public List<KuPeiXun.Entity.TOAccount> SelectList(string keystr, KuPeiXun.Entity.TOState state, KuPeiXun.Entity.IsActive active, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount)
        {
            try
            {
                List<KuPeiXun.Entity.TOAccount> list = this.dao.SelectList(keystr, state, active, listparameter, out datacount);
                return list;
            }
            catch (Exception ex)
            {
                throw new Utility.LogHepler(ex);
            }
        }
        #endregion

        #endregion
    }
    #endregion
}
